package com.example.online_exam_system.logic;

import com.example.online_exam_system.commons.Result;
import com.example.online_exam_system.commons.TableResult;
import com.example.online_exam_system.dto.QuestionsDto;
import com.example.online_exam_system.dto.TeacherregDto;
import com.example.online_exam_system.utils.MD5Utils;
import org.springframework.web.bind.annotation.RequestBody;

import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public interface ITeacherLogicService {

	/**
	 * @description 教师登录验证
	 * @param
	 * @return
	 * @author lianglong
	 */
	Result teacherLogincheck(Map<String, Object> inParam);

	/**
	 * @description 教师注册验证
	 * @param
	 * @return
	 * @author lianglong
	 */
	Result teacherRegCheck(TeacherregDto teacherregDto);

	/**
	 * @description 添加试题
	 * @param
	 * @return
	 * @author lianglong
	 */
	Result insertQuestion(@RequestBody QuestionsDto questionsDto);

	/**
	 * @description 获取试题列表
	 * @param
	 * @return
	 * @author lianglong
	 */
	TableResult getQuestionsTable(String username);


	/**
	 * @description 更新试题
	 * @param
	 * @return
	 * @author lianglong
	 */
    int updateQuestion(Map<String, Object> inParam);
	/**
	 * @description 删除试题
	 * @param
	 * @return
	 * @author lianglong
	 */
    int deleteQuestion(Map<String, Object> inParam);

    /**
     * @description 获取教师信息
     * @param
     * @return
     * @author lianglong
     */
    Map<String,Object> getTeacherInfo(String realname);

    /**
     * @description 获取所有科目信息
     * @param
     * @return
     * @author lianglong
     */
    List<Map<String, Object>> getAllSubjects();

    /**
     * @description 根据教师姓名获取所受科目id列表
     * @param
     * @return
     * @author lianglong
     */
	List<Map<String, Object>> getTeaSubIds(String realname);

	/**
	 * @description 更新教师信息
	 * @param
	 * @return
	 * @author lianglong
	 */
    int updateTeacherInfo(Map<String, Object> inParam);

    /**
     * @description 更新密码验证
     * @param
     * @return
     * @author lianglong
     */
	int pwdVerify(Map<String, Object> inParam);

	/**
	 * @description 根据教师id获取教师所受科目(名称)列表
	 * @param
	 * @return
	 * @author lianglong
	 */
	List<String> getTeaSubs(String teacherId);

	/**
	 * @description 根据教师姓名获取所选科目名称列表
	 * @param  
	 * @return  
	 * @author lianglong
	 */
	List<String> getTeaSubNames2(String realname);

	/**
	 * @description 根据教师姓名获取他所选科目的所有试题列表
	 * @param
	 * @return
	 * @author lianglong
	 */
	TableResult getQuestionsByteacherName(String realname);

	/**
	 * @description  添加试卷时根据所选科目id列表查找对应试题列表
	 * @param
	 * @return
	 * @author lianglong
	 */
	TableResult getquestionbyid(Map<String, Object> inParam);

    Result addExamPage(Map<String, Object> inParam);

	TableResult getQuestions(Map<String, Object> inParam);

	TableResult queryExam();

    List<Map<String,Object>> getAllInfo();

    List<Map<String,Object>> readPage();

	int modifyscore(Map<String, Object> map);

    TableResult queryScore1(String username);

	Result addExamPage2(Map<String, Object> inParam);
}
